package org.tools.string;

import org.tools.constants.StringPool;

/** 
 * 对数据库、字段相关的字符串处理
 *
 * <pre> 
 * 构建组：e-tools
 * 作者：eddy
 * 邮箱：1546077710@qq.com
 * 日期：2017年4月23日-下午5:40:39
 * 版权：E源时代
 * </pre>
 */
public class StringDBUtil {

	/**
	 * 将数据库字段名转为DataGrid字段名,如 sys_data_ 转为sysData 
	 * @param dbField
	 * @return
	 */
	public static String dbFieldToField(String dbField) {
		return dbFieldToField(dbField, StringPool.UNDERSCORE, true);
	}
	
	/**
	 * 
	 * 将数据库字段名转为DataGrid字段名,如 sys_data_ 转为sysData symbol:间隔符号
	 *
	 * @param dbField 如：sys_data_
	 * @param symbol 单词间隔符，默认为下划线，常量是：StringPool.UNDERSCORE
	 * @param upperExceptFirst  是否除首单词之外的其它单词的首字母都大写
	 * @return
	 */
	public static String dbFieldToField(String dbField, String symbol,
			boolean upperExceptFirst) {
		String result = "";
		if (dbField.startsWith(symbol))
			dbField = dbField.substring(1);
		if (dbField.endsWith(symbol))
			dbField = dbField.substring(0, dbField.length() - 1);
		String[] arr = dbField.split(symbol);
		for (int i = 0; i < arr.length; i++) {
			String str = arr[i];
			if (upperExceptFirst && i != 0) {
				char oldChar = str.charAt(0);
				char newChar = (oldChar + "").toUpperCase().charAt(0);
				str = newChar + str.substring(1);
			}
			result += str;
		}
		return result;
	}
}
